package cn.chainco.cts.idao;

import java.util.List;

import cn.chainco.cts.jdo.Country;
import cn.chainco.cts.jdo.Point;

public interface IPointDao extends GenericDao<Point, Long>{
	
	public List<Point> findPointByName(String name);
	
	public List<Point> findPointDuplicate(Country country, String name, int type, long id);
	
	/**
	 * 不区分大小写查询地点
	 * @param type 1：海港+内陆； 0：空港+内陆
	 */
	public List<Object> findPointByName(Point point, int type);
	
	/**
	 * 检查地名是否可以删除
	 */
	public boolean isPointCanDelete(Point point);
	
	/**
	 * 根据国家删除地名
	 */
	public void deletePointByCountry(Country country);
	
	/**
	 * 此方法是将地点数据补充完整
	 * @param startIndex
	 * @param endIndex
	 */
	public List<Point> updatePointByGroup();
	
	/**
	 * 关键字查地点
	 * @param isPrefix
	 * @param type
	 * @param keyword
	 * @return
	 */
	public List<Point> findPointByKeyword(boolean isPrefix, int type, String keyword, int records);
	
	/**
	 * 查询周边海港/空港
	 */
	public List<Point> findPortsByLat(int type, Double latlng);
	public List<Point> findPortsByLng(int type, Double latlng);
	public List<Point> findNeighboringPorts(long id, int type);
	public List<Point> findNoLatLngPoints();
	public List<Point> findPortsByLatLng(int type, Double[] latlng);
	
	/**
	 * 获取地点的分组标签
	 */
	public List<String> findPointGroupNameByString();
	
	/**
	 * 修改地点的分组状态
	 * @param id
	 */
	public void updatePointGroup(String idStr);
	
	/**
	 * 修改地点的分组状态
	 * @param id
	 */
	public void updatePointGroup(Long id);
}
